/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ifpb.pod.model;

import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Diogenes
 */
@Entity
public class Notificacao {

    private int Id;
    private Contato remetente;
    private String conteudo;
    private Date dataHora;
//    private Boolean statusLeitura;

    public Notificacao() {
    }

    public Notificacao(Contato remetente, String conteudo) {
        this.remetente = remetente;
        this.conteudo = conteudo;
        this.dataHora = new Date();
//        this.statusLeitura = Boolean.FALSE;
    }


    @Id
    @GeneratedValue
    public int getId() {
        return Id;
    }

    public void setId(int Id) {
        this.Id = Id;
    }


    public String getConteudo() {
        return conteudo;
    }

    public void setConteudo(String conteudo) {
        this.conteudo = conteudo;
    }

    @Temporal(TemporalType.TIMESTAMP)
    public Date getDataHora() {
        return dataHora;
    }

    public void setDataHora(Date dataHora) {
        this.dataHora = dataHora;
    }

    @OneToOne
    public Contato getRemetente() {
        return remetente;
    }

    public void setRemetente(Contato remetente) {
        this.remetente = remetente;
    }

//    public Boolean getStatusLeitura() {
//        return statusLeitura;
//    }
//
//    public void setStatusLeitura(Boolean statusLeitura) {
//        this.statusLeitura = statusLeitura;
//    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Notificacao other = (Notificacao) obj;
        if (this.remetente != other.remetente && (this.remetente == null || !this.remetente.equals(other.remetente))) {
            return false;
        }
        if ((this.conteudo == null) ? (other.conteudo != null) : !this.conteudo.equals(other.conteudo)) {
            return false;
        }
        if (this.dataHora != other.dataHora && (this.dataHora == null || !this.dataHora.equals(other.dataHora))) {
            return false;
        }
//        if (this.statusLeitura != other.statusLeitura && (this.statusLeitura == null || !this.statusLeitura.equals(other.statusLeitura))) {
//            return false;
//        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 17 * hash + (this.remetente != null ? this.remetente.hashCode() : 0);
        hash = 17 * hash + (this.conteudo != null ? this.conteudo.hashCode() : 0);
        hash = 17 * hash + (this.dataHora != null ? this.dataHora.hashCode() : 0);
//        hash = 17 * hash + (this.statusLeitura != null ? this.statusLeitura.hashCode() : 0);
        return hash;
    }

    @Override
    public String toString() {
        return dataHora +" - "+remetente +" "+conteudo;
    }



}
